
Da Death
Minmatar Relentless Enterprises
|
Posted - 2009.05.12 14:27:00 -
[1]
Originally by: Kazzac Elentria
Originally by: Motivated Prophet
Originally by: glas mir No BPCs and BPOs look the same to scanners and killboards
In the interest of being pedantic-ly correct, there are some exceptions to this that rely on the "Quantity" column not stacking instantiated objects, though they may have been phased out in the new killmail system.
MP
Nope, still the same.
I think it was partially discussed in the first CSM when we asked for different colors on BPC and BPOs
Big database issue to try and implement more or less.
Big database issue? Howmany bpos do does eve have?500? 10,000? well and if its 1million bpos then it would be a 1MB bigger database (or 2mb: 0 for bpc and 1 for bpo) á Curse Absolution Prorator Impel T2 Mods/Drones/Ammo Manufacturer
Since 2003. |

Da Death
Minmatar Relentless Enterprises
|
Posted - 2009.05.12 14:38:00 -
[2]
Originally by: Motivated Prophet
Originally by: SencneS Well... they have a "Original" and "Copy" Tag on them, I don't know why they don't just add that column to the kill mail and the scanner results.
No real significant impact on the database other then show an extra column this already exits..
You misunderstand. The relevant portions of the DB are:
CREATE TABLE itemdb ( id INT..., name..., /*Example: "Amarr Shuttle Blueprint"*/ ... /* Item static attributes (build costs for blueprints, activation time for an armor hardener, etc.) go here */ );
CREATE TABLE item ( ... item_type ENUM('blueprint',...), item_id INT..., itemdb_id INT... REFERENCES itemdb(`id`), quantity INT..., container_id INT... );
CREATE TABLE blueprint_instance ( item_id INT... REFERENCES item(`id`), copies_remaining INT DEFAULT -1, /*-1 = unlimited*/ ... );
So right now, the query is: SELECT itemdb.name, item.quantity FROM item, itemdb WHERE item.itemdb_id = itemdb.id AND item.container_id = /*the container you're looking inside, be it a hangar or a wreck or whatever*/;
To add BPC vs. BPO, you'd have to do: SELECT IF(blueprint_instance.copies_remaining=-1,'original','copy'), itemdb.name, item.quantity FROM item, itemdb LEFT OUTER JOIN blueprint_instance ON blueprint_instance.item_id = item.id WHERE item.itemdb_id = itemdb.id AND item.container_id = /*the container you're looking inside, be it a hangar or a wreck or whatever*/;
With apologies for my probably-incorrect SQL, but you get the idea.
MP
the code is nearly the same and the little extra is a program code which not get replicated for every bpc/bpo. So the database would not increase at all from that extra SQL code. The added db volume comes from the blueprint which distinguish it as bpc or bpo (1 bye value) All we need is
Absolution_BP=1 #lets say we have an Absolution bpo ... if bpcbpo=1 then this_is_a$="bpo" else this_is_a$="bpc"
One byte add for every bpo and one byte for every bpc: 2 (bpos+bpc) x 1,000,000 (number of bp)= 2,048,000 bytes.
sorry I am not a db programmer at all, so I just try to make my point in some..umm basic language. á Curse Absolution Prorator Impel T2 Mods/Drones/Ammo Manufacturer
Since 2003. |